/**
|--------------------------------------------------------------
| Validaciones.java
|--------------------------------------------------------------
| @Autor: David Ccapa Gil
| @Fecha de creacion: 08/10/2012
| @Fecha de la ultima modificacion: 08/10/2012
| @Universidad Peruana de Ciencias Aplicadas
|--------------------------------------------------------------
*/

package appbenedictoxvi;

import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.regex.Matcher;
import java.util.regex.Pattern;

/**
 *
 * @author David
 */
public class Validaciones {
 
    public boolean isSet(String cad){
        boolean resultado = true;
        
        if (cad == null){
            resultado = false;
        }
        if (cad.trim().isEmpty()) {
            resultado = false;
        } else {
            resultado = true;
        }
        
        return resultado;
    }
    
    public boolean isDigits(String digits){
        digits = digits.trim();
        for (char a : digits.toCharArray()) {
            if (!Character.isDigit(a)) {
                return false;
            }
        }    
        return true;
    }
    
    public boolean isDni(String dni){
        dni = dni.trim();
        if (!isDigits(dni))
            return false;
        if (dni.trim().length() == 8) {
            return true;
        } else {
            return false;
        }
    }
    
    public boolean isRuc(String ruc){
        if (!isDigits(ruc))
            return false;
        if (ruc.trim().length() == 11) {
            return true;
        } else {
            return false;
        }
    }

    public boolean isEmail(String correo) {
        Pattern pat = null;
        Matcher mat = null;
        pat = Pattern.compile("^([0-9a-zA-Z]([_.w]*[0-9a-zA-Z])*@([0-9a-zA-Z][-w]*[0-9a-zA-Z].)+([a-zA-Z]{2,9}.)+[a-zA-Z]{2,3})$");
        mat = pat.matcher(correo);
        if (mat.find()) {
           // System.out.println("[" + mat.group() + "]");
            return true;
        }else{
            return false;
        }
    }

     public int dateToInt(String fecha) {
         String[] parts ;
         int val = 0;
         if (isDate(fecha)){
             parts = fecha.split("/");
             if (parts.length==3){
                 val = Integer.parseInt(parts[2]+parts[1]+parts[0]);
             } else {
                 return 0;
             }
         } else {
             return 0;
         }
         return val;
     }

    public boolean isDate(String date) {
        try {
            String[] parts ;
            parts= date.split("/");
            int year = Integer.parseInt(parts[2]);
            int mes = Integer.parseInt(parts[1]);
            int dia = Integer.parseInt(parts[0]);
            
            if (!(dia >=1 && dia<= 31))
                return false;
            if (!(mes>=1 && mes <= 12 ))
                return false;
            if (!(year>=1000 && year<=9999))
                return false;
            
            SimpleDateFormat formatoFecha = new SimpleDateFormat("dd/MM/yyyy");
            Date fecha = formatoFecha.parse(date);
        } catch (Exception e) {
            return false;
        }
        
        return true;
    }
    
    
    
    
    
}